/* ========================================================================= */
/* ------------------------------------------------------------------------- */
/*!
  \file			pgctx.h
  \date			Sep 2012
  \author		TNick

  \brief		Contains the definition for PgCtx class


*//*


 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Please read COPYING and README files in root folder
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
#ifndef __PGCTX_INC__
#define __PGCTX_INC__
//
//
//
//
/*  INCLUDES    ------------------------------------------------------------ */

/*  INCLUDES    ============================================================ */
//
//
//
//
/*  CLASS    --------------------------------------------------------------- */
namespace	cpg		{

class	CpgDoc;
class	PgSpace;
class	PgLayer;
class	PgBlockDef;
class	PgBlockRef;

/**
*	@brief	the context for evaluating a characteristic or property
*/
class PgCtx				{


	//
	//
	//
	//
	/*  DEFINITIONS    ----------------------------------------------------- */


	/**
	*	@brief	the action that is performed
	*/
	enum		Action		{

		DISPLAY = 0,	/**< presented on screen */
		PRINTER,		/**< presented on a printer or previewing a print job */

		ACT_MAX			/**< for validation */
	};



	/*  DEFINITIONS    ===================================================== */
	//
	//
	//
	//
	/*  DATA    ------------------------------------------------------------ */

public:


	CpgDoc *			document_;

	PgSpace *		space_;

	PgLayer *		layer_;

	PgBlockDef *	block_def_;

	Action			action_;

	/*  DATA    ============================================================ */
	//
	//
	//
	//
	/*  FUNCTIONS    ------------------------------------------------------- */

public:


	/**
	*	@brief	constructor;
	*/
	PgCtx			( void )
	{
		document_ = NULL;
		space_ = NULL;
		layer_ = NULL;
		block_def_ = NULL;
		action_ = DISPLAY;
	}

	/*  FUNCTIONS    ======================================================= */
	//
	//
	//
	//

};	/*	class PgCtx	*/

/*  CLASS    =============================================================== */
//
//
//
//

}	//	namespace	cpg

#endif // __PGCTX_INC__
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
